package com.ruoyi.system.mapper;

import java.math.BigDecimal;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.ruoyi.system.domain.HatchetMoneyChange;	

/**
 * 提现记录 数据层
 * 
 * @author ruoyi
 * @date 2019-02-18
 */
public interface HatchetMoneyChangeMapper 
{
	/**
     * 查询提现记录信息
     * 
     * @param iD 提现记录ID
     * @return 提现记录信息
     */
	public HatchetMoneyChange selectHatchetMoneyChangeById(String iD);
	
	/**
     * 查询提现记录列表
     * 
     * @param hatchetMoneyChange 提现记录信息
     * @return 提现记录集合
     */
	public List<HatchetMoneyChange> selectHatchetMoneyChangeList(HatchetMoneyChange hatchetMoneyChange);
	
	/**
     * 新增提现记录
     * 
     * @param hatchetMoneyChange 提现记录信息
     * @return 结果
     */
	public int insertHatchetMoneyChange(HatchetMoneyChange hatchetMoneyChange);
	
	/**
     * 修改提现记录
     * 
     * @param hatchetMoneyChange 提现记录信息
     * @return 结果
     */
	public int updateHatchetMoneyChange(HatchetMoneyChange hatchetMoneyChange);
	
	/**
     * 删除提现记录
     * 
     * @param iD 提现记录ID
     * @return 结果
     */
	public int deleteHatchetMoneyChangeById(String iD);
	
	/**
     * 批量删除提现记录
     * 
     * @param iDs 需要删除的数据ID
     * @return 结果
     */
	public int deleteHatchetMoneyChangeByIds(String[] iDs);

	/**
	 * 获取分润明细列表
	 * @param hatchetMoneyChange
	 * @return
	 */
	public List<HatchetMoneyChange> selectFenRenChangeList(HatchetMoneyChange hatchetMoneyChange);
	
	/**
	 * @param agentNo 代理商编号
	 * @param concat时间起始
	 * @param concat2时间截至
	 * @return 提现次数
	 */
	public int findCountByAgentNO(@Param(value = "userId") String agentNo, @Param(value = "begindate")String concat, @Param(value = "pastdate")String concat2);
	
	/**
	 * 查询代理商每天的收益（分组）
	 * @param hatchetMoneyChange
	 * @return
	 */
	public List<HatchetMoneyChange> selectFenRenChangeListByDay(HatchetMoneyChange hatchetMoneyChange);
	
	
	/**
	 * 查询代理商的总收益
	 * @param agentNo
	 * @return
	 */
	public BigDecimal selectSumFenRenByUserId(String userId);
	
	/**
	 * 查询代理商每天总收益（不分组）
	 * @param hatchetMoneyChange
	 * @return
	 */
	public BigDecimal selectSumFenRenChangeListByDay(HatchetMoneyChange hatchetMoneyChange);
	
	/**
	 * 收益分析（查询代理商或者商户对自己的贡献收益）
	 * @param hatchetMoneyChange
	 * @return
	 */
	public BigDecimal selectMoneyAnalyze(HatchetMoneyChange hatchetMoneyChange);
	
	/**
	 * 查询分润总金额
	 * @param hatchetMoneyChange
	 * @return
	 */
	public BigDecimal selectSumMoney(HatchetMoneyChange hatchetMoneyChange);
	
	/**
	 * 查询提现总金额
	 * @param hatchetMoneyChange
	 * @return
	 */
	public BigDecimal selectTixianSumMoney(HatchetMoneyChange hatchetMoneyChange);

	public BigDecimal selectSumMoneyByMoneyType(HatchetMoneyChange moneyChange);
}